package problems.practice;

/**
 * 75. 颜色分类
 * https://leetcode.cn/problems/sort-colors/
 *
 * @author habitplus
 * @since 2022/8/2 10:57
 */
public class T75 {
    public void sortColors(int[] nums) {
        if (nums == null || nums.length < 2) return;

        int n = nums.length;
        int i = -1;
        int j = 0;
        int t;

        // [0, i] 表示 红
        // [i+1, j) 表示 白
        // [j, k) 表示 蓝
        for (int k = 0; k < n; k++) {
            if (nums[k] == 0) {
                // 红
                t = nums[k];
                nums[k] = nums[j];
                nums[j] = nums[i+1];
                nums[i+1] = t;
                i++;
                j++;
            } else if (nums[k] == 1){
                // 白
                t = nums[k];
                nums[k] = nums[j];
                nums[j] = t;
                j++;
            }
        }
    }
}
